In an electronic system, there is often a need to dynamically and selectively connect and disconnect subsystem data paths. For example, an electronic vision system typically has many subsystems, such as video cameras, digital memories, and image processors, which must be connected to one another in various configurations. One interconnection scheme connects several subsystems to a single common bus. This scheme has the drawback that the common bus becomes a performance bottleneck, allowing only one data transfer to occur at a time.
For performance reasons, it is desirable for the interconnection scheme to enable several high-speed connections to be simultaneously transferring data between any of a plurality of source ports and any of a plurality of destination ports. It is also desirable to allow the starting times and ending times of the various transfers to occur asynchronously, and to allow some of the connections to transfer or clock data at different rates than other connections. One scheme which tries to address these concerns uses an N-way multiplexer (mux) at each subsystem, with separate busses feeding each multiplexer from every other subsystem. This scheme, however, quickly becomes umnanageably complex and tangled as the number of subsystems to be connected increases.
An electronic system to dynamically interconnect subsystems might use a network of wires and electronically activated switches, controlled by a system controller, to connect one subsystem to another as the need arises, and later to remove the connection when the need has ended. One such system is the "plain old telephone system" which uses an electronic "crossbar" switch system to connect one subscriber to another when a phone call is made, and later to remove the connection when the subscribers hang up.
One combination of the above-mentioned concepts might implement an electronic vision interconnection system using an electronic crossbar system. Some researchers have examined alternative solutions to the problem of obtaining the equivalent of a full N-input by N-Output crossbar switch. If implemented with multiplexers, each input must fanout to all N multiplexers (with the high associated capacitive load slowing the connection process). Log.sub.2 N control lines are needed for each multiplexer. The high number of interconnection nets and the resulting congestion make all but the simplest routing infeasible. As an alternative, some researchers have suggested banyon networks, Benes networks, or combinations of banyon and Benes networks (see, e.g., Joshua Silver, High-Performance Scalable Switch Design, page 38-48 ASIC & EDA, (June 1994)). Such networks might work well for some applications, but it can be difficult to reprogram such networks on-the-fly, particularly where it is desired to remove single connections and create others, while leaving the majority of connections as they were.
An electronic crossbar system also can be implemented using application-specific integrated circuits (ASICs), but this approach is impractical in certain cases due to high costs (particularly at low volumes) and long turn-around times from initial conception to delivery of a final product to market.
What is needed is a high-performance crossbar interconnection system which can be implemented simply, quickly and inexpensively, even in low volumes. The system also needs to (a) allow high-speed data transfers on multiple paths simultaneously, (b) allow fast incremental addition and removal of interconnections, and (c) insert minimal delay in the interconnection path.